package someTestExcemple.ioStream;

import javax.swing.text.DateFormatter;
import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.time.format.DateTimeFormatter;
import java.util.Date;

public class FileTest1 {
    public static void main(String[] args) throws IOException {
        //指向一个文件
        //绝对路径
        File f = new File("D:\\myPrivateFiles\\jottings\\《长生乱》.docx");
        File f1 = new File("D:/myPrivateFiles/jottings//《长生乱》.docx");
        File f2 = new File("D:" +File.separator + "myPrivateFiles" + File.separator + "jottings" + File.separator + "《长生乱》.docx");
        System.out.println("f-文件大小:" +f.length());
        System.out.println("f1-文件大小:" +f1.length());
        System.out.println("f2-文件大小:" +f2.length());
        //File还可以指向不存在的文件
        System.out.println("文件是否存在:" +f.exists());
        System.out.println("文件是否可读:" +f.canRead());
        System.out.println("文件是否可写:" +f.canWrite());
        System.out.println("文件是否隐藏:" +f.isHidden());
        //还可以指向文件夹
        File f3 = new File("D:\\myPrivateFiles");
        System.out.println("是否是文件:" + f3.isFile() + " 是否是文件夹:" + f3.isDirectory());

        //创建文件
        File f4 = new File("D:\\myPrivateFiles\\jottings\\《长生乱1》.docx");
        System.out.println(f4.createNewFile()); //如果文件存在，则不创建 返回false，如果文件不存在，则创建 创建成功返回true
        long lastModifiedTime = f4.lastModified();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        System.out.println("文件最后修改时间:" + sdf.format(lastModifiedTime));
        System.out.println("获取觉得路径:" +f4.getAbsolutePath());
        //创建文件夹
        File f5 = new File("D:\\myPrivateFiles\\jottings\\mkDirTest\\testDir\\dir1");  //只能在已有路径下创建一级文件夹
        System.out.println(f5.mkdir());
        //创建多级文件夹
        File f6 = new File("D:\\myPrivateFiles\\jottings\\mkDirTest\\aaa\\bbb\\ccc");
        System.out.println(f6.mkdirs()); //创建成功返回true
        //排除是文件或者非空文件夹但没权限 或者空文件夹 --不能删除非空文件夹
        System.out.println(f4.delete()); //删除成功返回true


    }
}
